//
// Created by 啊汤哥 on 2025/9/10.
//
#include <cstdio>
#include <stdlib.h>
// 顺序表
#define MaxSize 10
// 定义结构
typedef struct {
    // 静态分配
    int data[MaxSize];
    int length;
} SqList;

// 初始话顺序表  &L 引用传递
void InitList(SqList &L) {
    L.length = 0;
}

// 顺序表插入
bool ListInsert(SqList &L, int position, int data) {
// 判断位置
    if (position < 1 || position >L.length+1) {
        return false;
    }
    // 可以插入 判断存储空间是否已经满了
    if (L.length >= MaxSize) {
        return false;
    }
    // 未满 所有元素后移
    for (int j = L.length; j >=position; j--) {
        L.data[j]=L.data[j-1];
    }
    L.data[position-1] = data;
    L.length++;
    return true;

}

// 删除一个位置的元素
bool ListDelete(SqList &L, int position, int &data) {
    if (position < 1 || position >L.length) {
        return false;
    }
    // 删除元素的值
    data = L.data[position - 1];

    for (int j = L.length; j >=position; j++) {
        L.data[j-1]=L.data[j];
    }
    L.length--;
    return true;
}

// 查询一个值在不在
int LocateElement(SqList L, int data) {
    for (int i = 0; i < L.length; i++) {
        printf("%d",L.data[i]);
    }
    return -1;
}